feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor#31590
Merged
mistercrunch merged 195 commits intomasterfrom Jun 20, 2025
Merged
feat(theming): land Ant Design v5 overhaul — dynamic themes, real dark mode + massive styling refactor#31590mistercrunch merged 195 commits intomasterfrom
mistercrunch merged 195 commits intomasterfrom
Conversation
|
Based on your review schedule, I'll hold off on reviewing this PR until it's marked as ready for review. If you'd like me to take a look now, comment
|
f1c7929 to
43452ff
Compare
97e182d to
0655910
Compare
1ca8e6e to
6c6532e
Compare
003f992 to
1652452
Compare
mistercrunch
added a commit
that referenced
this pull request
Jan 14, 2025
Chiseling at #31590 and bringing what's atomically committable out of there. This simply adds eslint checks to pre-commit. Note that: - it requires having run `npm i` in superset-frontend - it's set up to NOT run in CI as part of the pre-commit validation workflow, since we run eslint more formally in another workflow Why doing this? Currently it's common to forget to run `npm run lint` prior to committing/pushing, so people can waste time waiting for CI to fail where it could be caught easily. It's nice to have pre-commit do the check itself because it will only evaluate the files that have changed, making it much faster than running a full lint run against all files.
mistercrunch
added a commit
that referenced
this pull request
Jan 14, 2025
…rt/e2e.ts While working on #31590, I noticed that `expect` was not properly imported. It was using it from global for some unknown reason.
1652452 to
f89a23b
Compare
mistercrunch
added a commit
that referenced
this pull request
Jan 15, 2025
Chiseling at #31590 that has gotten big / unruly, in this PR is a refactor of Alert-related components, going vanilla AntD. Also. Deprecating colors.alerts since it's ambiguous/redundant with warning/error and does not exist in antd-v5
mistercrunch
added a commit
that referenced
this pull request
Jan 16, 2025
Chiseling at #31590 that has gotten big / unruly, in this PR is a refactor of Alert-related components, going vanilla AntD. Also. Deprecating colors.alerts since it's ambiguous/redundant with warning/error and does not exist in antd-v5
mistercrunch
added a commit
that referenced
this pull request
Jan 16, 2025
Chiseling at #31590 that has gotten big / unruly, in this PR is a refactor of Alert-related components, going vanilla AntD. Also. Deprecating colors.alerts since it's ambiguous/redundant with warning/error and does not exist in antd-v5
mistercrunch
added a commit
that referenced
this pull request
Jan 18, 2025
Chiseling at #31590 that has gotten big / unruly, in this PR is a refactor of Alert-related components, going vanilla AntD. Also. Deprecating colors.alerts since it's ambiguous/redundant with warning/error and does not exist in antd-v5
mistercrunch
added a commit
that referenced
this pull request
Jan 18, 2025
Chiseling at #31590 that has gotten big / unruly, in this PR is a refactor of Alert-related components, going vanilla AntD. Also. Deprecating colors.alerts since it's ambiguous/redundant with warning/error and does not exist in antd-v5
EnxDev
approved these changes
Jun 19, 2025
Contributor
EnxDev
left a comment
There was a problem hiding this comment.
Contributing to this project has been a rewarding experience. It’s been a pleasure working with you guys! I’m really looking forward to seeing it in action; thanks so much, everyone ❤️
rusackas
approved these changes
Jun 20, 2025
Member
rusackas
left a comment
There was a problem hiding this comment.
This diff is giving my browser a heart attack... but here's the codeowner stamp it needs!
Thanks (and congratulations) to all involved, this is a HUGE deal, and a loooong time coming.
Member
Author
9 tasks
9 tasks
3 tasks
3 tasks
9 tasks
sadpandajoe
added a commit
that referenced
this pull request
Sep 25, 2025
The APP_ICON configuration variable was deprecated in PR #31590 (Ant Design v5 theming overhaul) but this breaking change was not documented in UPDATING.md. Users were confused when their custom logos stopped working in Superset 6.0.0rc1. Added clear migration instructions showing how to replace APP_ICON with the new THEME_DEFAULT.token.brandLogoUrl configuration. Resolves misconceptions about APP_ICON functionality mentioned in issue #34824. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
9 tasks
3 tasks
sadpandajoe
added a commit
that referenced
this pull request
Nov 4, 2025
Table chart column headers were rendering with `id="header-undefined"` instead of meaningful IDs, breaking CSS customization and ARIA accessibility. **Root Cause:** PR #31590 (Ant Design v5) changed header IDs from `column.key` to `column.originalLabel`, but `originalLabel` is only set for time-comparison columns (added in PR #32665), leaving regular columns with undefined values. **Solution:** Implemented defensive fallback with sanitization: - Headers: `id="header-${sanitizeHeaderId(column.originalLabel || column.key)}"` - Cells: `aria-labelledby="header-${sanitizeHeaderId(column.originalLabel || column.key)}"` **Sanitization Required:** Column identifiers can contain CSS-unsafe characters (%, #, △, spaces), so added sanitization function to ensure valid CSS selectors and ARIA references. **Changes:** - Added `sanitizeHeaderId()` helper function - Updated header `id` attribute with fallback + sanitization - Updated cell `aria-labelledby` with fallback + sanitization - Added 2 comprehensive tests (regular + time-comparison columns) - Fixed test fixture mutation issue **Tests verify:** - No "undefined" in any header IDs - All IDs are CSS-safe (no spaces or special characters) - All ARIA relationships valid (cells reference existing headers) - Works for both regular and time-comparison columns Fixes #35783 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
9 tasks
rusackas
pushed a commit
that referenced
this pull request
Feb 12, 2026
The APP_ICON configuration variable was deprecated in PR #31590 (Ant Design v5 theming overhaul) but this breaking change was not documented in UPDATING.md. Users were confused when their custom logos stopped working in Superset 6.0.0rc1. Added clear migration instructions showing how to replace APP_ICON with the new THEME_DEFAULT.token.brandLogoUrl configuration. Resolves misconceptions about APP_ICON functionality mentioned in issue #34824. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

This merges the long-running “theming” branch into
master.Superset is now fully, dynamically themeable. We’ve moved to Ant Design v5’s
token-based theming and css-in-js, killed the last traces of Bootstrap/.less,
and unlocked a first-class dark mode.
Highlights
@superset-ui/core/componentsfor easy reusesuperset_config.py); WYSIWYG editor behind a FFBy the numbers
masterthe whole wayKnown gaps / follow-ups
theme.colors.*tokensBREAKING CHANGES
THEME_OVERRIDESis gone — configs must move to the new Antd-compatible JSONHuge thanks to everyone who battled merge conflicts and kept this branch alive.
Ready for prime time — let’s ship it. 🚀